package com.code.wanmi.util;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Component;

@Aspect
@Component
public class DataSourceAop {
    //在primary方法前执行
    @Before("execution(* com.code.wanmi.wm_file.controller.*.*(..))")
    public void setDataSource2test01() {
        System.err.println("Primary业务");
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary2);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary1);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary);
    }

   // 在secondary方法前执行
    @Before("execution(* com.code.wanmi.wm_user.controller.*.*(..))")
    public void setDataSource2test02() {
        System.err.println("Secondary2业务");
        //可指定多个
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary2);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary1);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary);
    }
    @Before("execution(* com.code.wanmi.wm_mls.controller.*.*(..))")
    public void setDataSource2test03() {
        System.err.println("Secondary业务");
        //可指定多个
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary1);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary2);
    }

    @Before("execution(* com.code.wanmi.wm_rpm.controller.*.*(..))")
    public void setDataSource2test04() {
        System.err.println("Secondary1业务");
        //可指定多个
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary2);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary1);
        DataSourceType.setDataBaseType(DataSourceType.DataBaseType.Secondary);
    }

}
